package com.yidu.t299.service.ssk.impl;

import com.yidu.t299.dao.ssk.ChargeBacktrackMapper;
import com.yidu.t299.domain.ssk.ChargeBacktrack;
import com.yidu.t299.service.ssk.ChargeBacktrackBiz;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * @author 粟术康
 * @version 1.0
 * @description
 * @date:2023/3/11 17:45
 */
@Service
@Transactional
public class ChargeBacktrackImpl implements ChargeBacktrackBiz {
    @Autowired
    private ChargeBacktrackMapper chargeBacktrackMapper;

    /**
     * 添加账户信息
     *
     * @param chargeBacktrack 账户对象
     * @return 影响的行数(返回1则为成功)
     */
    @Override
    public int insert(ChargeBacktrack chargeBacktrack) {
        return chargeBacktrackMapper.insert(chargeBacktrack);
    }

    /**
     * 根据账户编号删除该账户信息
     *
     * @param chargeCriterionId 账户编号
     * @return 影响的行数(返回1则为成功)
     */
    @Override
    public int deleteByPrimaryKey(Integer chargeCriterionId) {
        return chargeBacktrackMapper.deleteByPrimaryKey(chargeCriterionId);
    }

    /**
     * 根据账户信息修改其数据
     *
     * @param chargeBacktrack 账户对象
     * @return 影响的行数(返回1则为成功)
     */
    @Override
    public int updateByPrimaryKey(ChargeBacktrack chargeBacktrack) {
        return chargeBacktrackMapper.updateByPrimaryKey(chargeBacktrack);
    }
    /**
     * 根据账户编号查询指定的信息
     *
     * @param chargeCriterionId 账户编号
     * @return 账户对象
     */
    @Override
    public ChargeBacktrack selectByPrimaryKey(Integer chargeCriterionId) {
        return chargeBacktrackMapper.selectByPrimaryKey(chargeCriterionId);
    }

    /**
     * 按条件分页查询账户数据集合
     *
     * @param rows      每页的行数
     * @param page      页码
     * @param condition 条件参数
     * @return 账户对象集合
     */
    @Override
    public List<ChargeBacktrack> selectByPage(int rows, int page, String condition) {
        return chargeBacktrackMapper.selectByPage(rows, page, condition);
    }

    /**
     * 按条件查询account表中数据行数
     *
     * @param condition 条件参数
     * @return 数据行数
     */
    @Override
    public int selectCount(String condition) {
        return chargeBacktrackMapper.selectCount(condition);
    }
    /**
     * 根据实体类各属性值生成条件字符串
     *
     * @param chargeBacktrack 校区对象
     * @return 条件字符串
     */
    @Override
    public String getCondition(ChargeBacktrack chargeBacktrack) {
        // 定义条件字符串变量，初始值为空格字符串
        String condition = " ";
        // 如果账户对象为空，则直接返回空条件字符串
        if (chargeBacktrack == null) {
            return condition;
        }

        if (chargeBacktrack.getChargeCriterionId() != null) {
            condition += " and charge_criterion_id = " + chargeBacktrack.getChargeCriterionId();
        }
        if (chargeBacktrack.getChargeCriterionItem() != null && chargeBacktrack.getChargeCriterionItem().trim().length() != 0) {
            condition += " and charge_criterion_item like '%" + chargeBacktrack.getChargeCriterionItem() + "%'";
        }
        return condition;
    }

}
